#ifndef __AHCOMPUTE_DEVICE_H__
#define __AHCOMPUTE_DEVICE_H__

#include "utils.h"


namespace ah_compute
{

enum {
    AH_DEVICE_CPU = 0,
    AH_DEVICE_OPENCL,
    AH_DEVICE_NPU_8295,

    AH_DEVICE_MAX = __UINT32_MAX__
};

template <int TYPE_,
        typename FUNC_
> class Device
{
public:
    using Type = TYPE_;
    typedef FUNC_ Func;
}; // class Device

template <typename FUNC_>
class Device<AH_DEVICE_CPU, FUNC_> {
public:
    Device() = default;
    ~Device() = default;


}; // namespace ah_compute

#endif // __AHCOMPUTE_DEVICE_H__